using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("BnetPlayerChangelist")]
	public class BnetPlayerChangelist : MonoClass
	{
		public List<BnetPlayerChange> m_changes => method_3<Class271<BnetPlayerChange>>("m_changes")?.method_25();

		public BnetPlayerChangelist(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BnetPlayerChangelist(IntPtr address)
			: this(address, "BnetPlayerChangelist")
		{
		}

		public List<BnetPlayerChange> GetChanges()
		{
			return method_14<Class271<BnetPlayerChange>>("GetChanges", Array.Empty<object>())?.method_25();
		}

		public void AddChange(BnetPlayerChange change)
		{
			method_8("AddChange", change);
		}

		public bool HasChange(BnetPlayer player)
		{
			return method_10<bool>("HasChange", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { player });
		}

		public BnetPlayerChange FindChange(BnetPlayer player)
		{
			return method_15<BnetPlayerChange>("FindChange", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { player });
		}
	}
}
